
package cn.chint.util;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Random;
import java.util.UUID;
import java.util.concurrent.ThreadLocalRandom;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.text.DateFormat;

import cn.chint.po.User;


/* *
 *类名：UtilDate
 *功能：自定义订单类
 *详细：工具类，可以用作获取系统日期、订单编号等
 *版本：3.3
 *日期：2012-08-17
 *说明：
 *以下代码只是为了方便商户测试而提供的样例代码，商户可以根据自己网站的需要，按照技术文档编写,并非一定要使用该代码。
 *该代码仅供学习和研究支付宝接口使用，只是提供一个参考。
 */
public class UtilDate {
	
    /** 年月日时分秒(无下划线) yyyyMMddHHmmss */
    public static final String dtLong                  = "yyyyMMddHHmmss";
    public static final String dtLong2                  = "yyyyMMddHHmmssSSS";
    
    /** 完整时间 yyyy-MM-dd HH:mm:ss */
    public static final String simple                  = "yyyy-MM-dd HH:mm:ss";
    
    /** 年月日(无下划线) yyyyMMdd */
    public static final String dtShort                 = "yyyyMMdd";
    
    public static final String Short                 = "yyyy-MM-dd";
    
    public  static String getFormateDate(Date date){
		DateFormat df=new SimpleDateFormat(Short);
		return df.format(date);
	}
    public  static Date getFormateStringToDate(String date) throws ParseException{
		DateFormat df=new SimpleDateFormat(Short);
		return df.parse(date);
	}
	
    public static String getTime(Date date){
    	DateFormat df=new SimpleDateFormat(simple);
    	synchronized(df){
    		return df.format(date);
    	}
    }
    

   public static String getOrderIdByUUId() {
        Date date=new Date();
        DateFormat format = new SimpleDateFormat("yyyyMMdd");
        String time = format.format(date);
        int hashCodeV = UUID.randomUUID().toString().hashCode();
        if (hashCodeV < 0) {//有可能是负数
            hashCodeV = -hashCodeV;
        }
        // 0 代表前面补充0
        // 4 代表长度为4
        // d 代表参数为正数型
        System.out.println(hashCodeV);
        
        return  String.format("%011d", hashCodeV);

   }
   public static Integer nextItemNo(){
	   Date date = new Date();
	   DateFormat sdformat = new SimpleDateFormat("HHmmssSSS");
	   String id = sdformat.format(date);
	   Integer integer = Integer.parseInt(id);
	   return integer;
	}
   
   
   
    public static void main(String[] args) throws Exception{

    	//生成随机数
		int nin = 001;
		int max = 999;
		
		for(int i=0;i<100;i++){
			//int sjs = ThreadLocalRandom.current().nextInt(nin, max);
			//String num = getThree();
    		System.out.println(String.format("%03d",Integer.parseInt(getThree())));
		}   
    }
    
    /**
     * 返回系统当前时间(精确到毫秒),作为一个唯一的订单编号
     * 
     * @return
     *      以yyyyMMddHHmmss为格式的当前系统时间
     */
	public  static String getOrderNum(){
		Date date=new Date();
		DateFormat df=new SimpleDateFormat(dtLong2);
		return df.format(date);
	}
	
	/**
	 * 获取系统当前日期(精确到毫秒)，格式：yyyy-MM-dd HH:mm:ss
	 * @return
	 */
	public  static String getDateFormatter(Date date){
		DateFormat df=new SimpleDateFormat(simple);
		return df.format(date);
	}
	
	/**
	 * 获取系统当期年月日(精确到天)，格式：yyyyMMdd
	 * @return
	 */
	public static String getDate(){
		Date date=new Date();
		DateFormat df=new SimpleDateFormat(dtShort);
		return df.format(date);
	}
	
	/**
	 * 产生随机的三位数
	 * @return
	 */
	public static String getThree(){
		Random rad=new Random();
		return rad.nextInt(1000)+"";
	}
	
}
